1.1加载环境和批量加载R包
{r}rm(list=ls())
setwd("C:/Users/admin/Desktop")
pkges <- c('raster','rgdal',"raster","rgdal","maps", "mapdata","dismo","rJava","maptools","jsonlite")
lapply(pkges,library,character.only=TRUE)
sessionInfo()
save(xx,file="C:/HH.rda")
load(file = "C:/HH.rda")
在shiny应用运行之前运行以下代码:
options(encoding = 'UTF-8')
1.2批量安装未安装成功的R包
packages_needed <- c("raster",
"dismo",
"rgeos","rgdal","sp",
"ENMeval",
"wallace",
"utils",
"jsonlite"
)
pk_to_install <- packages_needed [!( packages_needed %in% rownames(installed.packages()) )]
if(length(pk_to_install)>0 ){
install.packages(pk_to_install,repos="http://cran.r-project.org")
}
pkgtest <- function(x){
if(x %in% rownames(installed.packages()) == FALSE){
install.packages(x,dependencies = TRUE)
}
library(x,character.only = TRUE)
}
needpackages <- c("raster","rgdal")
for(package in neededpackages){pkgtest(package)}
library(pacman)
p_load(sp,raster,rgeos,rgdal,rasterVis,raster,fs,sf,tidyverse)
1.3 常用文件管理代码
设置工作目录保证数据结果的有效性使用;
设置工作目录时要保证保留原始数据(raw_data_xiz)和更改数据(cg_data_xiz1),保证每一步都有确切的数据支持;
补充:
if(!file.exists("code")) dir.create("code")
cat("file A\n", file = "A.txt")
dir.create("tmp")
file.copy(c("A.txt", "B.txt"), "tmp")
unlink("tmp", recursive = TRUE)
file.rename("C.txt", "D.txt")
df <- dir(file.path(R.home(), "bin"), full.names = TRUE)
file.info(list.files())
file.mtime(list.files())
file.info(list.files())$mtime
file.size(list.files(()))
file.info(list.files())$size
list.files( ): 查看当前目录下文件;
file.copy用于
file.copy(from, to, overwrite = recursive, recursive = FALSE,
copy.mode = TRUE, copy.date = FALSE)
from是原始文件(目录)名,to是新文件(目录)名,二者可以是vector,但是长度需相同;
overwrite 若为TRUE,则文件被覆盖;
recursive 复制目录时recursive需为TRUE;
copy.mode若为TRUE,permission bits一并复制过来;
copy.date若为TRUE,文件日期一并复制过来。
函数unlink可以用来删除文件或目录,函数file.remove可以用来删除文件。
1.4 注释代码
使用方法是代码或则代码注释写完后,选中,使用快捷键注释;
1.5 R版本升级迁移R包
oldip <- installed.packages()[,1]
save(oldip, file="installedPackages.Rdata")
load("installedPackages.Rdata")
newip <- installed.packages()[,1]
for(i in setdiff(oldip, newip)) install.packages(i)
1.6 改变R 的临时缓冲目录
(例如C:\ Program Files \ R \ R-3.3.2 \ etc)
TMPDIR=E:/rtemp
TMP=E:/rtemp
TEMP=E:/rtemp
1.7 杂项
start <-proc.time()
proc.time()-start
https://cran.r-project.org/src/contrib/Archive/
从R的安装目录的etc目录下找到Rprofile.site文件(例如R-2.15.0\etc\Rprofile.site),用记事本打开,在这个文件最后添加一行:
options(defaultPackages=c(getOption("defaultPackages"), "foreign", "survival"))
把"foreign", "survival"改成你需要自动加载的包就行了
1.8 R包安装的各种报错汇总
Happy Git and GitHub for the useR
https://happygitwithr.com/
在使用github客户端提交代码时,报错
failed to receive handshake ssl/tls connection failed
## 解决方法:
# 任意位置git-bush:
$ git config --global http.sslBackend "openssl"
$ git config --global http.sslCAInfo [path to .pem file]
报错解决]Error in nchar(object, type = "chars") : invalid multibyte string, element 1
## 解决方法:
在R的窗口上运行Sys.setlocale(category = "LC_ALL", locale = "us")即可解决
# 关于一个非常复杂的报错:
Error: Failed to install 'unknown package' from GitHub: HTTP error 401. Bad
## 解决办法:
## 先利用:
# R中打开:
usethis::browse_github_pat()
# 网页端打开github:R:GITHUB_PAT=nicheer124499
# R打开:
usethis::edit_r_environ()
这会打开一个环境页,将刚才设置的R.GITHUB_PAT=gouzahndang123 粘贴复制上 然后保存,重启R就可以了。注意剪切上去的形式不是和上面的一致:需要:
GITHUB_PAT=gouzahndang123(等价的秘钥)
然后打开还会持续报错;
## 在git中使用:
$ git config --global http.sslBackend "openssl"
git config --global http.sslCAInfo D:/bclang/R-4.0.2/library/openssl/cacert.pem
之后,使用
> Sys.getenv("GITHUB_PAT")
> Sys.unsetenv("GITHUB_PAT")
> Sys.getenv("GITHUB_PAT")
## 载入了名字空间‘remotes’ 2.1.1,但需要的是>= 2.2.0
## 安装github上面的R包,不需要翻墙;安装时关闭翻墙,直接按照代码安装即可:
# install.packages("devtools")
# library(devtools)
# install_github("jasonleebrown/humboldt")
## 但也不一定,有时候也会需要翻墙才可以安装,可以作为一种尝试;
二进列运算符中有非数值参数
#按列执行类型转化
available_df <- apply(available_df, MARGIN=2, as.numeric)
#将结果由矩阵转化为data.frame
available_df <- as.data.frame(available_df)
1.9 内存管理命令
memory.limit():查看内存大小
memory.limit(n):申请内存大小
memory.size(NA):查看内存大小
memory.size(T):查看已分配的内存
memory.size(F):查看已使用的内存
在Windows开始菜单运行:Rgui -max-mem-size 2GB
与在R GUI中执行:memory.limit(2000)
rm(x):从workplace中删除变量/文件x
gc():清除内存垃圾
rm(list=ls()):清除workplace中所有变量